package com.shou.domain.common;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * ClassName:RulePageQueryEntity
 * Project:yvt-rule
 * Package: com.sunlight.domain.log.model.entity
 * Description
 * 和RulePageQueryDTO一致
 * @Author Nemo
 * @Create 2024/12/6 15:02
 * @Version 1.0
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PageQueryEntity {
    /**
     * 页码
     */
    private Integer pageIndex;

    /**
     * 分页大小
     */
    private Integer pageSize;

    /**
     * 停车场编号
     */
    private String lotCode;

    /**
     * 是否可用，默认为1
     */
    private Integer isAvailable;

    /**
     * 是否为会员专属车位，默认为0（否）
     */
    private Integer isMemberOnly;

    /**
     * 编号
     */
    private String parkingSpaceCode;

    /**
     * 收费策略描述
     */
    private String description;

    /**
     * 每小时费率
     */
    private BigDecimal hourlyRate;

    /**
     * 生效时间，默认当前时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 会员折扣比例
     */
    private BigDecimal memberDiscount;


    /**
     * 停车场名称
     */
    private String name;

    /**
     * 停车场地址
     */
    private String address;

    /**
     * 地理位置纬度
     */
    private BigDecimal latitude;

    /**
     * 地理位置经度
     */
    private BigDecimal longitude;

    /**
     * 营业时间
     */
    private String operatingHours;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 收费标准编号，用于应用不同的收费规则
     */
    private String feeScheduleCode;

    /**
     * 用户ID，自增主键
     */
    private Integer userId;

    /**
     * 密码哈希值，用于安全存储
     */
    private String password;

    /**
     * 电子邮件地址
     */
    private String email;

    /**
     * 用户角色
     */
    private String role;

    /**
     * ID，自增主键
     */
    private Integer id;

    /**
     * 预定状态，分为'PENDING'、 'CONFIRMED'、 'CANCELLED'
     */
    private String status;

    /**
     * 预定的起始时间
     */
    private LocalDateTime startTime;

    /**
     * 预定的结束时间
     */
    private LocalDateTime endTime;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 停车费用
     */
    private BigDecimal cost;

    /**
     * 排序字段
     */
    private String sortName;

    /**
     * 排序顺序
     */
    private Integer sort;
}
